<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.10: http://docutils.sourceforge.net/" />
<title></title>
<style type="text/css">

/*
:Author: David Goodger (goodger@python.org)
:Id: $Id: html4css1.css 7514 2012-09-14 14:27:12Z milde $
:Copyright: This stylesheet has been placed in the public domain.

Default cascading style sheet for the HTML output of Docutils.

See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to
customize this style sheet.
*/

/* used to remove borders from tables and images */
.borderless, table.borderless td, table.borderless th {
  border: 0 }

table.borderless td, table.borderless th {
  /* Override padding for "table.docutils td" with "! important".
     The right padding separates the table cells. */
  padding: 0 0.5em 0 0 ! important }

.first {
  /* Override more specific margin styles with "! important". */
  margin-top: 0 ! important }

.last, .with-subtitle {
  margin-bottom: 0 ! important }

.hidden {
  display: none }

a.toc-backref {
  text-decoration: none ;
  color: black }

blockquote.epigraph {
  margin: 2em 5em ; }

dl.docutils dd {
  margin-bottom: 0.5em }

object[type="image/svg+xml"], object[type="application/x-shockwave-flash"] {
  overflow: hidden;
}

/* Uncomment (and remove this text!) to get bold-faced definition list terms
dl.docutils dt {
  font-weight: bold }
*/

div.abstract {
  margin: 2em 5em }

div.abstract p.topic-title {
  font-weight: bold ;
  text-align: center }

div.admonition, div.attention, div.caution, div.danger, div.error,
div.hint, div.important, div.note, div.tip, div.warning {
  margin: 2em ;
  border: medium outset ;
  padding: 1em }

div.admonition p.admonition-title, div.hint p.admonition-title,
div.important p.admonition-title, div.note p.admonition-title,
div.tip p.admonition-title {
  font-weight: bold ;
  font-family: sans-serif }

div.attention p.admonition-title, div.caution p.admonition-title,
div.danger p.admonition-title, div.error p.admonition-title,
div.warning p.admonition-title, .code .error {
  color: red ;
  font-weight: bold ;
  font-family: sans-serif }

/* Uncomment (and remove this text!) to get reduced vertical space in
   compound paragraphs.
div.compound .compound-first, div.compound .compound-middle {
  margin-bottom: 0.5em }

div.compound .compound-last, div.compound .compound-middle {
  margin-top: 0.5em }
*/

div.dedication {
  margin: 2em 5em ;
  text-align: center ;
  font-style: italic }

div.dedication p.topic-title {
  font-weight: bold ;
  font-style: normal }

div.figure {
  margin-left: 2em ;
  margin-right: 2em }

div.footer, div.header {
  clear: both;
  font-size: smaller }

div.line-block {
  display: block ;
  margin-top: 1em ;
  margin-bottom: 1em }

div.line-block div.line-block {
  margin-top: 0 ;
  margin-bottom: 0 ;
  margin-left: 1.5em }

div.sidebar {
  margin: 0 0 0.5em 1em ;
  border: medium outset ;
  padding: 1em ;
  background-color: #ffffee ;
  width: 40% ;
  float: right ;
  clear: right }

div.sidebar p.rubric {
  font-family: sans-serif ;
  font-size: medium }

div.system-messages {
  margin: 5em }

div.system-messages h1 {
  color: red }

div.system-message {
  border: medium outset ;
  padding: 1em }

div.system-message p.system-message-title {
  color: red ;
  font-weight: bold }

div.topic {
  margin: 2em }

h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
  margin-top: 0.4em }

h1.title {
  text-align: center }

h2.subtitle {
  text-align: center }

hr.docutils {
  width: 100% }

img.align-left, .figure.align-left, object.align-left {
  clear: left ;
  float: left ;
  margin-right: 1em }

img.align-right, .figure.align-right, object.align-right {
  clear: right ;
  float: right ;
  margin-left: 1em }

img.align-center, .figure.align-center, object.align-center {
  display: block;
  margin-left: auto;
  margin-right: auto;
}

.align-left {
  text-align: left }

.align-center {
  clear: both ;
  text-align: center }

.align-right {
  text-align: right }

/* reset inner alignment in figures */
div.align-right {
  text-align: inherit }

/* div.align-center * { */
/*   text-align: left } */

ol.simple, ul.simple {
  margin-bottom: 1em }

ol.arabic {
  list-style: decimal }

ol.loweralpha {
  list-style: lower-alpha }

ol.upperalpha {
  list-style: upper-alpha }

ol.lowerroman {
  list-style: lower-roman }

ol.upperroman {
  list-style: upper-roman }

p.attribution {
  text-align: right ;
  margin-left: 50% }

p.caption {
  font-style: italic }

p.credits {
  font-style: italic ;
  font-size: smaller }

p.label {
  white-space: nowrap }

p.rubric {
  font-weight: bold ;
  font-size: larger ;
  color: maroon ;
  text-align: center }

p.sidebar-title {
  font-family: sans-serif ;
  font-weight: bold ;
  font-size: larger }

p.sidebar-subtitle {
  font-family: sans-serif ;
  font-weight: bold }

p.topic-title {
  font-weight: bold }

pre.address {
  margin-bottom: 0 ;
  margin-top: 0 ;
  font: inherit }

pre.literal-block, pre.doctest-block, pre.math, pre.code {
  margin-left: 2em ;
  margin-right: 2em }

pre.code .ln { color: grey; } /* line numbers */
pre.code, code { background-color: #eeeeee }
pre.code .comment, code .comment { color: #5C6576 }
pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
pre.code .literal.string, code .literal.string { color: #0C5404 }
pre.code .name.builtin, code .name.builtin { color: #352B84 }
pre.code .deleted, code .deleted { background-color: #DEB0A1}
pre.code .inserted, code .inserted { background-color: #A3D289}

span.classifier {
  font-family: sans-serif ;
  font-style: oblique }

span.classifier-delimiter {
  font-family: sans-serif ;
  font-weight: bold }

span.interpreted {
  font-family: sans-serif }

span.option {
  white-space: nowrap }

span.pre {
  white-space: pre }

span.problematic {
  color: red }

span.section-subtitle {
  /* font-size relative to parent (h1..h6 element) */
  font-size: 80% }

table.citation {
  border-left: solid 1px gray;
  margin-left: 1px }

table.docinfo {
  margin: 2em 4em }

table.docutils {
  margin-top: 0.5em ;
  margin-bottom: 0.5em }

table.footnote {
  border-left: solid 1px black;
  margin-left: 1px }

table.docutils td, table.docutils th,
table.docinfo td, table.docinfo th {
  padding-left: 0.5em ;
  padding-right: 0.5em ;
  vertical-align: top }

table.docutils th.field-name, table.docinfo th.docinfo-name {
  font-weight: bold ;
  text-align: left ;
  white-space: nowrap ;
  padding-left: 0 }

h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
  font-size: 100% }

ul.auto-toc {
  list-style-type: none }

</style>
</head>
<body>
<div class="document">


<p class="infomark"><strong>TIP:</strong> If your data is not TAB delimited, use <em>Text Manipulation-&gt;Convert</em></p>
<p class="warningmark"><strong>TIP:</strong> This tool is intended primarily for comparing column values (such as &quot;c5==c12&quot;), although it is also possible to filter on specific values (like &quot;c6!='G'&quot;). Be aware that when searching for specific values, any possible match is considered. So if you search on &quot;c6!='G'&quot;, rows will be excluded when c6 is G, K, R, S, B, V, or D (plus N or X if you set that to equal &quot;Everything&quot;), because it is possible those values could indicate G.</p>
<hr class="docutils" />
<p><strong>What it does</strong></p>
<p>This tool is written for a very specific case related to an analysis of polymorphism data. Suppose you have a table of SNP data that looks like this:</p>
<pre class="literal-block">
chromosome start end patient1 parient2 patient3 patient4
--------------------------------------------------------
chr1       100   101 A        M        C        R
chr1       200   201 T        K        C        C
</pre>
<p>and your want to select all rows where patient1 has the same base as patient2. Unfortunately you cannot do this with the <em>Filter and Sort -&gt; Filter</em> tool because it does not understand DNA ambiguity codes (see below). For example, at position 100 patient1 is the same as patient2 because M is a mix of As and Cs. This tool is designed to make filtering on ambiguities possible.</p>
<hr class="docutils" />
<p><strong>Syntax</strong></p>
<p>The filter tool allows you to restrict the dataset using simple conditional statements:</p>
<ul class="simple">
<li>Columns are referenced with <strong>c</strong> and a <strong>number</strong>. For example, <strong>c1</strong> refers to the first column of a tab-delimited file (e.g., <strong>c4 == c5</strong>)</li>
<li>When using 'equal-to' operator <strong>double equal sign '==' must be used</strong> ( e.g., <strong>c1=='chr1'</strong> )</li>
<li>Non-numerical values must be included in single or double quotes ( e.g., <strong>c6=='C'</strong> )</li>
<li>Filtering condition can include logical operators, but <strong>make sure operators are all lower case</strong> ( e.g., <strong>(c1!='chrX' and c1!='chrY') or c6=='+'</strong> )</li>
</ul>
<hr class="docutils" />
<p><strong>Allowed types of filtering</strong></p>
<p>The following types of filtering are allowed:</p>
<ul class="simple">
<li>Testing columns for equality (e.g., c2 == c4 or c2 != c4)</li>
<li>Testing that a column contains a particular base (e.g., c4 == 'C'). Only bases listed in <em>DNA Codes</em> below are allowed.</li>
<li>Testing that a column represents a plus or a minus strand (e.g., c3 == '+' or c3 != '-')</li>
<li>Testing that a column is a chromosomes (c1 == 'chrX') or a scaffold (c1 == 'scaffold87976')</li>
</ul>
<p>All other types of filtering should be done with <em>Filter and Sort -&gt; Filter</em> tool.</p>
<hr class="docutils" />
<p><strong>DNA Codes</strong></p>
<p>The following are the DNA codes used for filtering:</p>
<pre class="literal-block">
Code   Meaning
----   --------------------------
 A     A
 T     T
 U     T
 G     G
 C     C
 K     G or T
 M     A or C
 R     A or G
 Y     C or T
 S     C or G
 W     A or T
 B     C, G or T
 V     A, C or G
 H     A, C or T
 D     A, G or T
 X     A, C, G or T
 N     A, C, G or T
 .     not (A, C, G or T)
 -     gap of indeterminate length
</pre>
<hr class="docutils" />
<p><strong>Example</strong></p>
<ul class="simple">
<li><strong>c8=='A'</strong> selects lines in which the eighth column is A, M, R, W, V, H, or D, or N or X if appropriate</li>
<li><strong>c12==c15</strong> selects lines where the value in the twelfth column could be the same as the fifteenth and the fifteenth column could be the same as the twelfth column (based on appropriate codes)</li>
<li><strong>c9!=c19</strong> selects lines where column nine could not be the same as column nineteen or column nineteen could not be the same as column nine (using appropriate codes)</li>
<li><strong>c4 == 'A' and c4 == c5</strong> selects lines where column 4 and 5 are both A, M, R, W, V, H, D or N, or X if appropriate</li>
</ul>
</div>
</body>
</html>
